package arithmetic;

import java.util.Scanner;
import java.util.HashMap;
import java.util.HashSet;
import java.util.Set;

/**
 * HJ41 称砝码
 * 思路：
 * 1.使用HashSet去重
 * 2.尝试所有组合形式
 * 描述
 * 现有n种砝码，重量互不相等，分别为 m1,m2,m3…mn ；
 * 每种砝码对应的数量为 x1,x2,x3...xn 。现在要用这些砝码去称物体的重量(放在同一侧)，问能称出多少种不同的重量。
 *
 *
 * 注：
 *
 * 称重重量包括 0
 *
 * 数据范围：每组输入数据满足 1≤n≤10  ，
 * 1
 * ≤
 * �
 * �
 * ≤
 * 2000
 *
 * 1≤m
 * i
 * ​
 *  ≤2000  ，
 * 1
 * ≤
 * �
 * �
 * ≤
 * 10
 *
 * 1≤x
 * i
 * ​
 *  ≤10
 * 输入描述：
 * 对于每组测试数据：
 * 第一行：n --- 砝码的种数(范围[1,10])
 * 第二行：m1 m2 m3 ... mn --- 每种砝码的重量(范围[1,2000])
 * 第三行：x1 x2 x3 .... xn --- 每种砝码对应的数量(范围[1,10])
 * 输出描述：
 * 利用给定的砝码可以称出的不同的重量数
 *
 * 示例1
 * 输入：
 * 2
 * 1 2
 * 2 1
 * 复制
 * 输出：
 * 5
 * 复制
 * 说明：
 * 可以表示出0，1，2，3，4五种重量。
 */
public class TestHW41_1 {
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        // 注意 hasNext 和 hasNextLine 的区别
        // while (in.hasNextInt()) { // 注意 while 处理多个 case
        //     int a = in.nextInt();
        //     int b = in.nextInt();
        //     System.out.println(a + b);
        // }
        int num = Integer.parseInt(in.nextLine());
        String str1 = in.nextLine();
        String str2 = in.nextLine();
        HashMap<Integer, Integer> hm = hb(str1, str2);
        getLen(hm);
    }

    public static void getLen(HashMap<Integer, Integer> hm) {
        Set<Integer> strs1 = hm.keySet();
        HashSet<Integer> hsh = new HashSet<>();
        hsh.add(0);
        for (Integer i : strs1) {
            int num = hm.get(i);
            for (int x = 0; x < num; x++) {
                hsh = hs(hsh, i);
            }
        }
        System.out.println(hsh.size());
    }

    public static HashSet<Integer> hs(HashSet<Integer> hsh, int num) {
        HashSet<Integer> hashSet = new HashSet<>();
        for (Integer i : hsh) {
            hashSet.add(i);
            int num1 = i + num;
            hashSet.add(num1);
        }
        return hashSet;
    }

    //合并数据
    public static HashMap<Integer, Integer> hb(String str1, String str2) {
        HashMap<Integer, Integer> hm = new HashMap<>();
        String[] strs1 = str1.split(" ");
        String[] strs2 = str2.split(" ");
        int index = 0;
        while (index < strs1.length) {
            int num1 = Integer.parseInt(strs1[index]);
            int num2 = Integer.parseInt(strs2[index]);
            hm.put(num1, num2);
            index++;
        }
        return hm;
    }
}
